/**get封装
 * 
 * @param {string} url 地址
 * @param {Object} params 参数
 * @param {function} callback 
 * @param {JSON} type 数据类型 
 * @param {Object} headers 请求头 
 */
function get(url,params,callback,type,headers={}){
    const xhr = new XMLHttpRequest

    //遍历参数
    let temp = []
    for(let key in params){
        temp.push(`${key}=${params[key]}`)
    }
    
    xhr.open('get',`${url}?${temp.join('&')}`)
    
    xhr.onreadystatechange = ()=>{
        if(xhr.readyState === 4){
            if(xhr.status === 200){
                let res = xhr.responseText
                if(type === 'json') res = JSON.parse(res)
                callback(res)
            }else{
                console.log(xhr.status)
            }
        }
    }
    
    //遍历headers请求头对象
    for(let key in headers){
        xhr.setRequestHeader(key,headers[key])
    }

    xhr.send(null)
}


/**
 * 
 * @param {string} url  地址
 * @param {Object} params  请求参数
 * @param {function} callback 
 * @param {JSON} type  数据格式
 * @param {Object} headers 请求头
 */
function post(url,params,callback,type,headers={}){
    const xhr = new XMLHttpRequest

    xhr.open('post',url)

    xhr.onreadystatechange = ()=>{
        if(xhr.readyState === 4){
            if(xhr.status === 200){
                let res = xhr.responseText
                if(type === 'json') res = JSON.parse(res)
                callback(res)
            }else{
                console.log(xhr.status)
            }
        }
    }

    xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
    for(let key in headers){
        xhr.setRequestHeader(key,headers[key])
    }

    

    let temp = []
    for(let key in params){
        temp.push(`${key}=${params[key]}`)
    }
    xhr.send(temp.join('&'))
}